package hot;

/**
 * @author lakersUp
 * @Classname   在排序数组中查找元素的第一个和最后一个位置
 * @Description     二分!
 *              可以设置一个boolean变量, leftOrright,标记只找左边界或者只找右边界
 *
 * @Date 2022/3/9 14:51
 * @Version 1.0
 */
public class Hot34searchRange {
    public int[] searchRange(int[] nums, int target) {
        int right=nums.length-1;
        int left=0;
        while(left<=right){
            int mid=(left+right)/2;
            if (nums[mid]==target) {
                if(nums[left]==target && target==nums[right]){
                    return new int[]{left,right};
                }else {
                    if(nums[left]!=target){
                        left++;
                    }
                    if(nums[right]!=target){
                        right--;
                    }
                }
            }else {
                if(nums[mid]<target){
                    left=mid+1;
                }else {
                    right=mid-1;
                }
            }
        }
        return new int[]{-1,-1};
    }
}
